// 循环遍历数组，该方法没有返回值
// 回调函数一共接收3个参数，同 map 方法一样。分别是：「正在处理的当前元素的值、正在处理的当前元素的索引、正在遍历的集合对象」
Array.prototype.forEach = function (fn) {
    for (let i = 0; i < this.length; i++) {
        this[i] !== null && this[i] !== undefined && fn(this[i], i, this)
    }
}

// Test
let a = [1, 2, 0, 3]
a.forEach((item, index, array) => {
    console.log(item, index, array)
})
// ['a', 'b'].forEach(v => console.log(v))
